package com.happyclub.paul.service.impl;

import com.happyclub.paul.service.IFilePathService;
import com.happyclub.utils.FileUtil;
import com.happyclub.utils.JsonResult;
import org.springframework.stereotype.Service;
import org.springframework.util.ClassUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * @Auther: 魏泉琦
 * @Date: 2019/4/8 11:47
 * @Description: 文件上传
 */
@Service
public class FilePathServiceImpl implements IFilePathService {

    /**
     *@Description: 文件上传至本地
     *@Author: 魏泉琦
     *@date: 2019/4/8
     */
    public JsonResult upload(MultipartFile file) {
        JsonResult jsonResult = new JsonResult();
        if(!file.isEmpty()) {
            // 获取文件名称,包含后缀
            String fileName = file.getOriginalFilename();
            System.out.println("文件名:"+fileName);
            // 存放在这个路径下：该路径是该工程目录下的static文件下：(注：该文件可能需要自己创建)
            // 放在static下的原因是，存放的是静态文件资源，即通过浏览器输入本地服务器地址，加文件名时是可以访问到的
            String path = ClassUtils.getDefaultClassLoader().getResource("").getPath()+"static/png/";
            System.out.println("文件路径path："+path);
            try {
                // 该方法是对文件写入的封装，在util类中，导入该包即可使用，后面会给出方法
                FileUtil.fileupload(file.getBytes(), path, fileName);

                String fliePath = path+fileName;
                System.out.println("文件写入路径fliePath："+fliePath);
                jsonResult.setMsg("上传成功，正在审核");
                jsonResult.setErrorCode("OK");
                jsonResult.setResult(fliePath);
                return  jsonResult;                       //上传成功
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        jsonResult.setMsg("上传失败");                //上传失败
        jsonResult.setErrorCode("error");
        return jsonResult;

    }
}